function [x] = nrPseudoGen(c_init,N)

    x1 = uint32(1);
    x1 = x1 + bitshift(x1,31);

    x2 = uint32(c_init);
    x2 = bitxor(x2, bitshift(bitxor(bitxor(bitxor(x2, bitshift(x2,-1)), bitshift(x2,-2)), bitshift(x2,-3)), 31));
    for n = 1:49
        x1 = bitxor(bitshift(x1,-1), bitshift(x1,-4));
        x1 = bitxor(bitxor(x1, bitshift(x1,31)), bitshift(x1,28));
        x2 = bitxor(bitxor(bitxor(bitshift(x2,-1), bitshift(x2,-2)), bitshift(x2,-3)), bitshift(x2,-4));
        x2 = bitxor(bitxor(bitxor(bitxor(x2, bitshift(x2,31)), bitshift(x2,30)), bitshift(x2,29)), bitshift(x2,28));
    end
    
    for n = 1:N/32
        x1 = bitxor(bitshift(x1,-1), bitshift(x1,-4));
        x1 = bitxor(bitxor(x1, bitshift(x1,31)), bitshift(x1,28));
        x2 = bitxor(bitxor(bitxor(bitshift(x2,-1), bitshift(x2,-2)), bitshift(x2,-3)), bitshift(x2,-4));
        x2 = bitxor(bitxor(bitxor(bitxor(x2, bitshift(x2,31)), bitshift(x2,30)), bitshift(x2,29)), bitshift(x2,28));
        seq_tmp = bitxor(x1, x2);
        for m = 1:32
            p_seq((n-1)*32 + m) = bitand(bitshift(seq_tmp, -(m-1)), 1);
        end
    end
    
    x = p_seq;
end

